home *** CD-ROM | disk | FTP | other *** search
- title program to echo cassette input to speaker
- name echo1
- ;
- ;
- port_a equ 60h
- port_b equ 61h
- port_c equ 62h
- ;
- ;
- dseg segment para stack 'stack'
- db 64 dup('stack ')
- dseg ends
- ;
- ;
- ;
- cseg segment para public 'code'
- start proc far
- assume cs:cseg,ss:dseg
- ;
- call motor_on
- again: in al,port_c ; read port_c
- cmp al,32h
- je bit_on
- bit_off: call speaker_off
- jmp again
- bit_on: call speaker_on
- jmp again
- ret
- start endp
- ;
- ;
- motor_on proc near
- in al,port_b ; read cassette output
- and al,not 08h ; clear bit to turn on motor
- out port_b,al ; reset bit to turn on motor
- ret
- motor_on endp
- ;
- ;
- motor_off proc near
- in al,port_b ; read port_b settings
- or al,08h ; set bit to turn motor off
- out port_b,al ; reset port register
- ret
- motor_off endp
- ;
- ;
- speaker_on proc near
- in al,port_b ; read port_b settings
- or al,3h ; set bits for speaker on
- out port_b,al ; reset port register
- ret
- speaker_on endp
- ;
- ;
- speaker_off proc near
- in al,port_b ; read port_b settings
- and al,not 3h ; set bits off for speaker off
- out port_b,al ; reset port register
- ret
- speaker_off endp
- ;
- ;
- ;
- cseg ends
- end